iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

轉職道上的萌芽人生 − 自學程式開發ing系列 第 22

Day 22- 191008學習筆記 Express - Deploying to production(上)

  • 分享至 

  • xImage
  •  

提醒:由於看到這系列鐵人訂閱人數漸漸變多,標記一下這些內容是在「非常萌新時期」所寫,更多技術內容請參考我的 Github,歡迎跟我一起討論 ^ ^


前面已經學習如何建立一個基本的圖書館網站,接著將學習如何上架,讓客戶可以使用到該產品。(尚未學習如何設置使用者權限)今天將著重於在發佈前所需做的準備。


發佈前的準備:

網站發佈前,最主要需考量兩個方面:安全性性能
而此教材介紹幾個基本的重點:

  • 將 NODE_ENV 設置為 production (預設 development)
    • 可移除錯誤訊息的 stack traces,使得錯誤訊息較不冗長
    • 可以使用由 CSS extensions 生成的 view & CSS。
    • 設定方法:可藉由 export、environment file、OS initialization system 等方法。(詳細參考性能篇)(這裡我在 terminal 輸入指令:
      env NODE_ENV=production,其顯示已設定為 NODE_ENV=production)
  • Log appropriately
    • 在產品中,常會需要記錄網站動向(如:追蹤流量),但為了方便 debug,我們會希望 log 的訊息不要太雜亂。
    • 其中一個方法是藉由 debug 模組,以 設定變數 來開關控管 log 的訊息。
    • npm install debug 進行安裝。
  • gzip/deflate compression
    • 將 HTTP response 壓縮再傳回給 client,可大大增加效能。
    • 在 request 中,會告知該 client 是否能夠解壓縮,若不能,則會傳送未壓縮的 response。
    • 可以使用 compression middleware 來實現。(在大流量的網站中,會選擇使用 reverse proxy。如:Nginx)
    • npm install compression 進行安裝。
const compression = require('compression')
const app = express()
// 需在想要壓縮的任何 Router 之前執行
app.use(compression())
  • 設置 HTTP headers
    • 設置適當的 HTTP headers 可避免受到眾所周知的Web漏洞的威脅。
    • 可以使用 Helmet middleware。
    • 其中已經對大部分 HTTP headers 做設定,也可參考 文件 再依照需求做調整。
    • npm install helmet 進行安裝。
const helmet = require('helmet')
const  app = express()
app.use(helmet())

上一篇
Day 21- 191007學習筆記 Express - 建立 Form - 更新、刪除
下一篇
Day 23- 191009學習筆記 Express - Deploying to production(下)
系列文
轉職道上的萌芽人生 − 自學程式開發ing30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言